package api;

import java.util.Date;

import org.orm.PersistentException;
import org.orm.PersistentTransaction;

/**
 * @author manu
 *
 */

public class Log {

	/**
	 * Ingresa nuevo log al registro
	 * 
	 * @param evento
	 * @param fechaInicio
	 * @param fechaTermino
	 * @return respuesta. Si alguna variable es nula
	 * retorna 0 si hay datos nulos, si ocurre una excepcion retorna 2 y si es exitoso retorna 3
	 */
	public String add(String evento, Date fechaInicio, Date fechaTermino, String tiempo){
		String respuesta = "";
		PersistentTransaction t;
		/*
		 * Validar que vengan los parametros
		 */
		if ((evento.length() > 0 && evento.replace(" ","") != "") || (fechaInicio == null)|| (fechaTermino == null) || (tiempo.length() > 0 && tiempo.replace(" ","") != "")) {
			/*
			 * Agregar log
			 */
		try {
			t = orm.CriptogramaPersistentManager.instance().getSession()
					.beginTransaction();
            orm.DAOFactory lDAOFactory = orm.DAOFactory.getDAOFactory(); 
			/*
			 * Uso de DAO Interface
			 */
            orm.dao.Tcr_logDAO oRMTcr_logDAO = lDAOFactory.getTcr_logDAO();
            orm.Tcr_log oRMTcr_log = oRMTcr_logDAO.createTcr_log();
            oRMTcr_log.setLog_evento(evento);
            oRMTcr_log.setLog_tiempo(tiempo);
            oRMTcr_log.setLog_finicio(fechaInicio);
            oRMTcr_log.setLog_ftermino(fechaTermino);
            oRMTcr_logDAO.save(oRMTcr_log);              
            t.commit();
            respuesta = "3";
		}
		catch (PersistentException e1) {
			e1.printStackTrace();
			respuesta = "2";
		}
		}else{
			respuesta = "0";
		}
		return respuesta;
		
	}
	
	/**
	 * Busca todos los log y los retorna como arreglo de objetos.
	 * 
	 * @return ormLog
	 */
	public orm.Tcr_log[] getAll() {
		PersistentTransaction t;
		/*
		 * Buscar todos los log
		 */
		try {		
			t = orm.CriptogramaPersistentManager.instance().getSession()
					.beginTransaction();
            orm.DAOFactory lDAOFactory = orm.DAOFactory.getDAOFactory();
			/*
			 * Uso de DAO Interface
			 */
            orm.dao.Tcr_logDAO oRMTcr_logDAO = lDAOFactory.getTcr_logDAO();             
			orm.Tcr_log[] ormLog =  oRMTcr_logDAO.listTcr_logByQuery(null, null);
			return 	ormLog;
		} catch (PersistentException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return null;
	}
	
}
